- diff_file = discussion.diff_file
- diff_file_class = diff_file.text? ? 'text-file' : 'js-image-file'
- diff_data = {}
- expanded = discussion.expanded? || local_assigns.fetch(:expanded, nil)
- unless expanded
  - diff_data = { lines_path: project_merge_request_discussion_path(discussion.project, discussion.noteable, discussion) }

.diff-file.file-holder.js-lazy-load-discussion{ class: diff_file_class, data: diff_data }
  .js-file-title.file-title.file-title-flex-parent
    .file-header-content
      = render "projects/diffs/file_header", diff_file: diff_file, url: discussion_path(discussion), show_toggle: false

  - if diff_file.text?
    .diff-content
      %table.code.js-syntax-highlight
        - if expanded
          - discussions = { discussion.original_line_code => [discussion] }
          = render partial: "projects/diffs/line",
            collection: discussion.truncated_diff_lines,
            as: :line,
            locals: { diff_file: diff_file,
              discussions: discussions,
              discussion_expanded: true,
              plain: true }
        - else
          %tr.line_holder.line-holder-placeholder
            %td.old_line.diff-line-num
            %td.new_line.diff-line-num
            %td.line_content.js-success-lazy-load
              .js-code-placeholder
            %td.js-error-lazy-load-diff.hidden.diff-loading-error-block
              - button = button_tag(_("Try again"), class: "btn-link gl-button btn-link-retry gl-p-0 js-toggle-lazy-diff-retry-button")
              = _("Unable to load the diff. %{button_try_again}").html_safe % { button_try_again: button}
          = render "discussions/diff_discussion", discussions: [discussion], expanded: true
  - else
    - partial = (diff_file.new_file? || diff_file.deleted_file?) ? 'single_image_diff' : 'replaced_image_diff'
    = render partial: "projects/diffs/#{partial}", locals: { diff_file: diff_file, position: discussion.position.to_json, click_to_comment: false }
    .note-container
      = render partial: "discussions/notes", locals: { discussion: discussion, show_toggle: false, show_image_comment_badge: true, disable_collapse_class: true }
